package com.wipz.eoa.iphone.user;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.wipz.eoa.iphone.BaseServiceImpl;

public class LoginOperate extends BaseServiceImpl{
	/**
	 * 查询获得当前登录用户可以操作的所有菜单，新的查询方式，提升查询速度
	 * 
	 * @param userId
	 *            String 登录用户ID
	 * @return Map 菜单集合
	 * @throws Exception
	 */
	public Map getMenus2(String userId, String agencyId,Map resultMap){
		List agencyResult = super.queryList("user.distinct", userId);
		List menuResult;
		StringBuffer queryMenus = new StringBuffer();
		if (agencyResult.size() > 0) {
			menuResult = super.queryList("user.distinct.userid", userId);
				Map map;
				int len = menuResult.size();
				for (int i = 0; i < len; i++) {
					map = (Map) menuResult.get(i);
					if (null == map.get("PARENT_ID")) {
						digui(map, menuResult, resultMap);
						break;
					}
				}
		}
		return resultMap;
	}
	

	/**
	 * 从结果map中取key的值，如果为null返回""
	 * 
	 * @param map
	 *            Map 结果集和
	 * @param key
	 *            String 键值
	 * @return String 结果
	 */
	private String getValue(Map map, String key) {
		return map.get(key) == null ? "" : map.get(key).toString();
	}
	
	static void digui(Map map, List list, Map result) {
		String id = (String) map.get("ID");
		String text = (String) map.get("DIR_NAME");
		List ll = new ArrayList();
		ll.add("办公用品领出");
		ll.add("用品类别管理");
		ll.add("办公用品库存清单");
		ll.add("资产库存清单");
		ll.add("收文清单");
		ll.add("发文清单");
		ll.add("公文类型");
		ll.add("费用报销列表");
		ll.add("印章类型管理");
		ll.add("印章类别管理");
		ll.add("租赁提醒设置");
		ll.add("我的日程");
		ll.add("租赁管理");
		if (!ll.contains(text)) {
			
			Map all = new HashMap();
	
			Map m;
			int len = list.size();
			for (int i = 0; i < len; i++) {
				m = (Map) list.get(i);
				if (id.equals(m.get("PARENT_ID"))) {
					digui(m, list, all);
				}
			}
	
			Map<String, Map> e = new HashMap();
			e.put(text, all);
			result.put(text, all);
		}
	}


}
